package com.cy.pj.sys.mapper;

import com.cy.pj.sys.entity.SysUser;
import com.cy.pj.sys.vo.SysUserDeptVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface SysUserMapper {
    //查询总记录数
    int getRowCount(String username);

    //查询当前页的记录
    List<SysUserDeptVo> findPageObjects(
            String username,
            Integer startIndex,
            Integer pageSize
    );

    //基于id修改用户状态信息,对此用户进行禁用或启用
    int validById(@Param("id") Integer id,
                  @Param("valid") Integer valid);

    //保存用户信息
    int insertObject(SysUser entity);

    //负责基于id执行用户和角色信息数据的查询操作
    SysUserDeptVo findObjectById(Integer id);

    //基于用户提交的数据更新用户及相关信息
    int updateObject(SysUser entity);

    //基于用户id,修改用户密码和盐值
    int updatePassword(@Param("password")String password,
                       @Param("salt")String salt,
                       @Param("id")Integer id);

    //根据部门id查询是否有用户
    int getUserCountByDeptId(Integer deptId);

    //根据用户名获取用户对象
    SysUser findUserByUserName(String username);
}
